package javafx179labs.sheypak.lab2;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.ext.swing.SwingTextField;
import javafx.ext.swing.SwingButton;
import javafx.scene.input.MouseEvent;
import java.lang.Exception;
import javafx.scene.paint.Color;

/**
 * @author SSheypak
 */

 //TextBox для ввода нового положения текста по оси X
 var posTextBox : SwingTextField = SwingTextField{ //для ввода нового положения textOutput
    columns: 4
    layoutX: 20
    layoutY: 20
}

//Кнопочка
var posButton : SwingButton = SwingButton{
    layoutX: 85
    layoutY: 19
    text: "Click to move the Text object"
    onMouseClicked:function(event : MouseEvent):Void{
        try{
            var newX = Integer.valueOf(posTextBox.text ); //Если пользователь ввел не целое число
            textOutput.layoutX = newX;                    //метод Integer.valueOf выбросит исключение.
        }catch(e : Exception){                            //Исключение необходимо "поймать". 
            println("Can't convert {posTextBox.text} to Integer");
        }
    }
}

//Текст, который можно двигать влево/вправо
var textOutput:Text = Text {
                font : Font {
                    size : 16
                }
                x: 20
                y: 80
                content: "You can move me <- left and -> right"
                fill: Color.GREEN
            }

Stage {
    title: "Moving text"
    width: 400
    height: 250
    scene: Scene {
        content: [
           posTextBox, posButton, textOutput
        ]
    }
}